package cc.rengu.igas.bsps.common.dao;

import cc.rengu.igas.bsps.common.entity.DevBindInfo;

import java.util.List;

/**
 * Created by zhangxuran on 2020/04/02
 */
public interface BspsDevBindInfoMapper {
    /**
     * 解绑收银员绑定的语音设备
     *
     * @param instId      机构标识
     * @param devBindInfo 商户设备绑定信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateBspsDevBindInfoStatusByUserIdAndMchntNo(String instId, DevBindInfo devBindInfo) throws Exception;

    /**
     * 查询收银员绑定语音设备列表
     *
     * @param instId     机构标识
     * @param bindUserId 收银员ID
     * @param mchntNo    商户号
     * @param devType    设备类型
     * @return 设备绑定列表信息
     * @throws Exception 异常
     */
    List<DevBindInfo> selectBspsDevBindInfoListByUserIdAndDevType(String instId, String bindUserId, String mchntNo, String devType) throws Exception;

    /**
     * 新增设备绑定信息
     *
     * @param devBindInfo 设备绑定信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int insertBspsDevBindInfo(DevBindInfo devBindInfo) throws Exception;

    /**
     * 查询收银员绑定语音设备列表
     *
     * @param instId      机构标识
     * @param devUniqueId 设备唯一标识
     * @param devType     设备类型
     * @param bindStatus  绑定状态
     * @return 设备绑定信息
     * @throws Exception 异常
     */
    DevBindInfo selectBspsDevBindInfoByDevUniqueIdAndDevType(String instId, String devUniqueId, String devType, String bindStatus) throws Exception;

    /**
     * 解绑设备绑定信息
     *
     * @param devBindInfo 设备绑定信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateBspsDevBindInfoStatusByPrimaryKey(DevBindInfo devBindInfo) throws Exception;

    /**
     * 查询语音设备绑定列表
     *
     * @param instId   机构标识
     * @param devBrand 品牌名
     * @param devModel 设备类型
     * @return 设备绑定列表信息
     * @throws Exception 异常
     */
    List<DevBindInfo> selectBspsDevBindInfoByModelAndProduct(String instId, String devBrand, String devModel) throws Exception;

    /**
     * 更新语音设备绑定信息
     *
     * @param devBindInfo 设备绑定信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateVoiceDevInfo(DevBindInfo devBindInfo) throws Exception;

    /**
     * 更新已绑定设备的用户
     *
     * @param devBindInfo 设备绑定信息
     * @return 0-成功，其它-失败
     * @throws Exception 异常
     */
    int updateBspsDevBindInfoByPrimaryKey(DevBindInfo devBindInfo) throws Exception;
}
